package cc.rengu.igas.share.facade.bean.cups;

import cc.rengu.oltp.service.common.enums.OltpRpcdEnum;
import cc.rengu.oltp.service.model.BizException;

import java.util.Arrays;

/**
 * F60.2.1  账户所有人类型
 *
 * @author fangminwei
 * @date 2021/4/17
 */
@SuppressWarnings("AlibabaEnumConstantsMustHaveComment")
public enum F61_6_2_FORMATTER {
    SC("SC", "用法一:表示银联安全输入模式"),
    AR("AR", "用法二:表示在银联安全输入模式下发卡机构的认证结果"),
    SA("SA", "用法三:表示发卡机构直接身份认证模式"),
    CR("CR", "用法四:表示在发卡机构直接身份认证模式下发卡机构对CAVV值的认证结果"),
    AM("AM", "用法五:表示交易过程中受理方要求发卡方校验的方式"),
    NM("NM", "用法六:持卡人姓名"),
    ;

    private String code;
    private String desc;

    F61_6_2_FORMATTER(String code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    public String getCode() {
        return code;
    }

    public String getDesc() {
        return desc;
    }

    @Override
    public String toString() {
        return code + "-" + desc;
    }

    public static F61_6_2_FORMATTER find(String code) {
        F61_6_2_FORMATTER result = Arrays.stream(F61_6_2_FORMATTER.values())
                .filter(e -> e.getCode().equals(code)).findFirst().orElse(null);

        if (result == null) {
            throw new BizException(OltpRpcdEnum.PARAM_IS_EMPTY_OR_NULL.getRespCode(), "找不到对应的枚举信息" + code);
        }
        return result;
    }
}
